package xyz.mumuwei.youthcourseserver.pojo;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * <p>
 * 
 * </p>
 *
 * @author mumuwei
 * @since 2022-02-19
 */
@Data
@TableName("course_order")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Order implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 订单编号
     */
    private String code;

    /**
     * 课程id
     */
    @NotNull(message = "课程不能为空")
    private Integer courseId;

    /**
     * 学生id
     */
    private Integer studentId;

    /**
     * 订单总价
     */
    private BigDecimal totalPrice;

    /**
     * 第三方支付编号
     */
    private String payId;

    /**
     * 状态: 0: 支付成功, 1 : 待支付, 2： 已退款
     */
    private Integer state;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private String createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateTime;

    /**
     * 支付时间
     */
    private String payTime;

    /**
     * 退款时间
     */
    private String refundTime;

    /**
     * 逻辑删除: 0：正常,  1：删除
     */
    @TableLogic
    private Integer isDelete;

    /**
     * 学员姓名
     */
    @NotBlank(message = "学员姓名不能为空")
    @TableField(exist = false)
    private String studentName;

    /**
     * 学员手机号
     */
    @NotBlank(message = "学员手机号不能为空")
    @TableField(exist = false)
    private String phone;

    /**
     * 课程名
     */
    @TableField(exist = false)
    private String courseName;

    /**
     * 支付方式
     */
    @NotNull(message = "支付方式不能为空")
    @TableField(exist = false)
    private Integer payType;
}
